home *** CD-ROM | disk | FTP | other *** search
- /*
- Oh!X5号
- GalaxyKnights
- DX7→DX8の犠牲になりましたので、ほぼ未使用。
- bitmapライブラリ手続き部分
- */
- #define BEXT
- #include "stdafx.h"
- #include "ohx5_1.h"
- HBITMAP hbm0,hbm1;
- long timer_low;
- long unloaded;
-
- BITMAPDATA datalist[]={
- "", 0, 0, 0, 0, 0, 0
- };
- LOOKS bitmaps[BITMAPMAX];
- // 処理用サーフェイス
- struct IDirect3DSurface8* lpFrontBuffer; // フロントバッファ用サーフェイス
- struct IDirect3DSurface8* lpBackBuffer; // バックバッファ用サーフェイス
- long dwTransType;
-
- void title_object_clear(void)
- {
- if( hbm0!=NULL ) DeleteObject( hbm0 );
- if( hbm1!=NULL ) DeleteObject( hbm1 );
- hbm0 = hbm1 = NULL;
- unloaded = 1;
- }
-
-
- /* ゲームの初期化 */
- bool init_bitmaps( void )
- {
- // D3DCAPS8 d3dcaps; //
- // HRESULT d3drval; // DirectDrawからのリザルトステータス
- D3DSURFACE_DESC d3dsd; // テンポラリサーフェイス
-
- // int ct;
-
- // 該当ハードのカラーのケーパビリティをチェック
- // dwTransType には、BltFastで使う透明フィルタのコマンドが入る
- // dwTransType = DDBLTFAST_SRCCOLORKEY;
- // d3dcaps.dwSize = sizeof( d3dcaps );
-
- // スプライト用描画オブジェクトエリアを確保、リソースのコピーはRestoreSurfacesルーチンで行う
- memset( &d3dsd, 0, sizeof( d3dsd ) );
-
- // bitmap リソースの一括確保
- /*
- ct = 0;
- while( datalist[ct].resource !="" ){
- ddsd.dwWidth = datalist[ct].sx;
- ddsd.dwHeight= datalist[ct].sy;
- bitmaps[ct].surf = NULL;
- bitmaps[ct].palet= NULL;
- bitmaps[ct].cols = datalist[ct].count;
- bitmaps[ct].sizex= datalist[ct].cx;
- bitmaps[ct].sizey= datalist[ct].cy;
- ddrval = lpDD->CreateSurface( &ddsd, &bitmaps[ct].surf, NULL );
- if( ddrval != D3D_OK ){ return false; }
- ct++;
- }
- unloaded = 1;
- timer_low = 0;
- if( !RestoreSurfaces() ) return false;
- */
- return true;
- }
-
- bool release_bitmaps()
- {
- int ct = 0;
- title_object_clear();
- while( datalist[ct].resource != "" ){
- xRelease( bitmaps[ct].surf );
- ct++;
- }
- return true;
- }
-
- /*
- タイトル画面の表示
- */
-
- bool display_bitmap( char * filename )
- {
- // HRESULT hr;
- // HRESULT ddrval;
- /*
- timer_low++;
- if( unloaded ){
- hbm0 = (HBITMAP)LoadImage( GetModuleHandle( NULL ), filename, IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION );
- if ( NULL == hbm0 ) return false;
- unloaded = 0;
- }
- // ddrval = DDCopyBitmap( lpBackBuffer, hbm0, 0, 0, 0, 0 );
- if( timer_low>60*3 ){
- title_object_clear();
- timer_low = 0;
- system_state = ID_3D_MOVE;
- unloaded = 1;
- }
- // フレーム更新、フリップだろうがブリットだろうがこれでOK
- // hr = lpD3DX->UpdateFrame( 0 );
- // if (hr == DDERR_SURFACELOST || hr == DDERR_SURFACEBUSY) return false;
- */
- return true;
- }
-